
#ifndef GAUSSIANBLUR_H_
#define GAUSSIANBLUR_H_

#include <iostream>
#include "../include/Effect.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/objdetect/objdetect.hpp>

using namespace std;
using namespace cv;

// Implements the GaussianBlur OpenCV effect.
class Gaussian : public Effect {

private:
	Size kSize;
	double sigmaX;
	double sigmaY;
	int borderType;

public:
	// Class constructor. Receives the needed values for the GaussianBlur effect.
	Gaussian(double size, double x, double y, int border);

	// Class destructor.
	virtual ~Gaussian(void);

	// Returns the given picture after gaussian blur.
	virtual void processEffect(Mat& src, Mat& dst);

};
#endif /* GAUSSIANBLUR_H_ */
